﻿using System;
using System.Data;
using System.Text;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GC2.Bussines;
using GC2.Bussines.BMAdmin;
using GC2.Entities.Admin;
using GC2.Entities.Seguridad;
using GC2.ExceptionHandler;

public partial class Admin_VerCajas : GenericPage
{
    Usuarios usuario = new Usuarios();
    Cajas cajaD = new Cajas();
    Cajas cajaH = new Cajas();
    List<Cajas> listaCajas = new List<Cajas>();
    private ExceptionConstructor exNew = new ExceptionConstructor();  

    #region Controles

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            SetearCultura();
            SetearConexion();
            if (!this.IsPostBack)
            {
                usuario = (Usuarios)Session["UsuarioActual"];
                DateTime dHoy = DateTime.Now.Date;
                FechaH.SetFecha(dHoy);
                string sFecha = SetearFecha();
                FechaD.SetFecha(Convert.ToDateTime(sFecha));
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }

    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        try
        {
            BMCajas bmCajas = new BMCajas(Connection);

            if (txtIdCaja.Text != "")
            {
                BuscarUna();
            }
            else
            {
                if (FechaD.GetFecha() != FechaD.FechaNula)
                {
                    cajaD.Fecha = FechaD.GetFecha();
                }
                else
                {
                    cajaD.Fecha = FechaD.FechaNula;
                }
                if (FechaH.GetFecha() != FechaH.FechaNula)
                {
                    cajaH.Fecha = FechaH.GetFecha();
                }
                else
                {
                    cajaH.Fecha = FechaD.FechaNula;
                }
                cajaD.Tipo = 2;
                cajaD.Estado = Convert.ToInt16(cboEstado.SelectedItem.Value);

                listaCajas = bmCajas.BMCajasSearch(cajaD, cajaH);

                Session["listaCajas"] = listaCajas;
                CargarGrilla();
            }

        }
        catch (Exception ex)
        { throw ex; }
    }

    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/Seguridad/Default.aspx", false);
    }

    protected void gvCajas_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gvCajas.PageIndex = e.NewPageIndex;
        CargarGrilla();
    }

    protected void gvCajas_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {

            Cajas caja = new Cajas();
            caja.Id_Caja = Convert.ToInt64(gvCajas.SelectedDataKey.Value);
            MostrarCaja(caja);         
        }
        catch (Exception ex)
        {
            ErrorUI(ex);
        }
    }

    #endregion

    #region Métodos

    #region CargarGrilla
    private void CargarGrilla()
    {
        try
        {
            listaCajas = (List<Cajas>)Session["listaCajas"];
            gvCajas.DataSource = listaCajas;
            gvCajas.DataBind();
            Decimal dTotal = 0;
            foreach (Cajas caja in listaCajas)
            {
                if (caja.PaseCaja == 0)
                {
                    dTotal += caja.Total;
                }
            }
            txtTotal.Text = dTotal.ToString();
        }
        catch (Exception ex)
        { throw ex; }
    }
    #endregion

    #region MostrarCaja
    private void MostrarCaja(Cajas caja)
    {
        try
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("Caja.aspx?Id_Caja=");
            sb.Append(caja.Id_Caja.ToString());
            sb.Append("&Accion=2");

            Response.Redirect(sb.ToString(), false);
        }
        catch (Exception ex)
        { throw ex; }
    }
    #endregion

    #region BuscarUna
    private void BuscarUna()
    {
        try
        {
            Cajas caja = new Cajas();
            caja.Id_Caja = Convert.ToInt32(txtIdCaja.Text.Trim());
            MostrarCaja(caja);
        }
        catch (Exception ex)
        { throw ex; }
    }
    #endregion

    #endregion

}
